<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        h3 {
            padding: 20px 10px;
        }

        li {
            list-style: none;
        }

        .list li {
            line-height: 45px;
            text-indent: 10px;
            border: 1px solid #333;
        }

        .list li+li {
            border-top: 0;
        }
    </style>
</head>

<body>
    <div class="wrap">
        <h3 id="title">批量操作元素</h3>
        <div class="list">
            <li>01</li>
            <li>02</li>
            <li>03</li>
            <li>04</li>
            <li>05</li>
            <li>06</li>
        </div>
        <input type="text" class="year">
    </div>
</body>
<script>
    // 封装一个js库,可以帮助我们快速 操作元素
    // 批量操作元素  => 修改html,text,显隐,设置宽高,设置样式,类名(增删改),绑定事件

    // 批量操作元素
    // 单元素
    // var ele = document.getElementById("title");
    // ele.innerHTML = "a23123";

    // 多元素
    // var eles = document.querySelectorAll(".list li");
    // for (var i = 0; i < eles.length; i++) {
    //     var ele = eles[i];
    //     ele.innerHTML = "456456";
    // }


    // 问题:  单元素直接 获取和修改内容  多元素遍历  获取和 修改  => 麻烦
    // 解决方法 => 统一使用 document.querySelectorAll() =>多元素获取(无论是单元素还是多元素 =>都会返回一个集合)

    function getEle(selector) {
        var obj = {
            eles: document.querySelectorAll(selector),
            // html()  可以获取和设置元素的html结构
            // html("123123")   有参数就设置
            // html()           没有参数就获取
            html: function (con) {
                if (arguments.length >= 1) { //有参数(至少一个)
                    for (var i = 0; i < this.eles.length; i++) {
                        var ele = this.eles[i];
                        ele.innerHTML = con;
                    }
                } else { //没有参数
                    return this.eles[0].innerHTML;
                }
            },
            // text()  可以获取和设置元素的文本结构
            // text("123123")   有参数就设置
            // text()           没有参数就获取
            text: function (con) {
                if (arguments.length >= 1) { //有参数(至少一个)
                    for (var i = 0; i < this.eles.length; i++) {
                        var ele = this.eles[i];
                        ele.innertext = con;
                    }
                } else { //没有参数
                    return this.eles[0].innertext;
                }
            },
            // val()  可以获取和设置元素的文本结构
            // val("123123")   有参数就设置
            // val()           没有参数就获取
            val: function (con) {
                if (arguments.length >= 1) { //有参数(至少一个)
                    for (var i = 0; i < this.eles.length; i++) {
                        var ele = this.eles[i];
                        ele.value = con;
                    }
                } else { //没有参数
                    return this.eles[0].value;
                }
            }
        }
        return obj;
    }

    var $listLi = getEle(".list li");
    console.log($listLi);
    $listLi.html(456456);

    var $title = getEle("#title");
    console.log($title);
    $title.html(123123);

    var $year = getEle(".year");
    console.log($year);
    $year.val(123123);


</script>

</html>